type params = {
  point?:string,
  level?:string
}


// 获取当前页面路径查询参数的方法
function getParams(url?:string ):params {
  // 如果传入的地址为空
  if (url === undefined) {
    // 则自动获取当前网页路径地址
    url = window.location.href;
  }
  // 拿到问号的索引
  const indexOfQ = url.indexOf("?");
  // 如果地址中没有问号(代表没有携带参数)
  if (indexOfQ === -1) {
    // 终止函数执行,并返回一个空数组
    return {};
  }
  // 如果地址中有携带参数,则截取参数字符串
  const search = url.slice(indexOfQ + 1);
  // 将参数字符串以'&'分割成数组
  const hashes = search.split("&");
  // 准备一个新对象
  const params:{[propName:string]:string} = {};
  // 遍历参数数组
  for (let i = 0; i < hashes.length; i++) {
    // 将当前参数字符串以'='分割成数组,并限定返回的分割片段数量为两个
    const hash = hashes[i].split("=", 2);
    // 如果返回的分割片段数量为一个
    if (hash.length === 1) {
      // 将值设置为空串
      params[hash[0]] = "";
    } else {
      // 如果返回的分割片段数量为两个,则将正数符号设置为空格并进行解码处理
      params[hash[0]] = decodeURIComponent(hash[1]).replace(/\+/g, " ");
    }
  }
  // 返回一个对象
  return params;
}

// 保存当前分数的方法
function savePoint(money:number):void {
  try {
      // window.jsi.savePoint(money);
      // 拿到保存分数的方法
      const jsi = (window as any).jsi
      // 如果window上存在jsi属性,并且jsi对象中有savePoint方法
      if(jsi && jsi.savePoint){
        // const savePoint = jsi.savePoint
        // if(savePoint){
          // 调用保存分数的方法
          jsi.savePoint(money)
        // }
      }
  } catch (error) {
    console.log(error);
  }
}

export { getParams, savePoint };
